package com.gupaoedu.pattern.singleton.lazy;

/**
 * 2019/5/10
 * created by chenpp
 */
/**
 * 懒汉式单例
 * 优点:只有在使用的时候才会初始化，不会造成内存浪费
 * 缺点:对于getInstance() 由于不是线程安全的,需要使用锁机制来保证线程安全
 *
 * */
public class LazySimpleSingleton {
    private LazySimpleSingleton(){}
    private static LazySimpleSingleton instance =null;
//线程不安全
//    public static LazySimpleSingleton getInstance(){
//        if(instance==null){
//            instance = new LazySimpleSingleton();
//        }
//        return  instance;
//    }
    //锁机制  线程安全,但是由于使用了类锁,在大量多线程获取实例的时候都会发生阻塞,影响性能
    public static synchronized LazySimpleSingleton getInstance(){
        if(instance==null){
            instance = new LazySimpleSingleton();
        }
        return  instance;
    }
}
